package de.fh.dortmund.pk1.aufgabe1.cluedo;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import de.fh.dortmund.pk1.aufgabe1.gui.Feld;
import de.fh.dortmund.pk1.aufgabe1.gui.Spielbrett;

public class GeheMensch {
	
	public static void geheMensch() {

		for (int i = 0; i < 24; i++) {
			for (int ii = 0; ii < 25; ii++) {
				final Feld feldSpielbrett = Spielbrett.felderSpielbrett[i][ii];
				feldSpielbrett.getFeldButton().addActionListener(
						new ActionListener() {
							public void actionPerformed(ActionEvent e) {

								int[][] nachbarFelder = Spielbrett.felderSpielbrett[Spielbrett.spielerAmZug
								          										.getXPosition()][Spielbrett.spielerAmZug
										.getYPosition()]
								.getNachbarFelder();
								if ((nachbarFelder[0][1] == feldSpielbrett.getYPosition()
										&& nachbarFelder[0][0] == feldSpielbrett.getXPosition()
										|| nachbarFelder[1][1] == feldSpielbrett.getYPosition()
										&& nachbarFelder[1][0] == feldSpielbrett.getXPosition()
										|| nachbarFelder[2][1] == feldSpielbrett.getYPosition()
										&& nachbarFelder[2][0] == feldSpielbrett.getXPosition()
										|| nachbarFelder[3][1] == feldSpielbrett.getYPosition()
										&& nachbarFelder[3][0] == feldSpielbrett.getXPosition())
										&& feldSpielbrett.isBegehbar() == true
										&& (feldSpielbrett.isBesetzt() == false || feldSpielbrett
												.getDerRaum() != null)) {

									Spielbrett.felderSpielbrett[Spielbrett.spielerAmZug
											.getXPosition()][Spielbrett.spielerAmZug
											.getYPosition()].setBesetzt(false);

									// spielfigur wird umgestellt
									Spielbrett.spielerAmZug.getBildSpieler().setBounds(
											feldSpielbrett.getFeldButton()
													.getX() + 5, feldSpielbrett
													.getFeldButton().getY(),
											29, 29);

									Spielbrett.spielerAmZug.setXPosition(feldSpielbrett
											.getXPosition());
									Spielbrett.spielerAmZug.setYPosition(feldSpielbrett
											.getYPosition());

									// setzt Feld auf besetzt,damit nicht 2
									// Spieler darauf stehen können.
									feldSpielbrett.setBesetzt(true);

									// würfelcounter -1
									Spielbrett.spielerAmZug.setWueCounter(Spielbrett.spielerAmZug
											.getWueCounter() - 1);

									Spielbrett.zeigeSpielerLabels();

									// Wenn auf Tuer geglickt
									if(feldSpielbrett.getDerRaum() != null) {
										Spielbrett.spielerAmZug.setWueCounter(0);
										Spielbrett.spielerAmZug.setInRaum(feldSpielbrett.getDerRaum().getName());
										Spielbrett.verdachtButton.setEnabled(true);
										Spielbrett.anklageButton.setEnabled(true);
										Spielbrett.felderSpielbrett[Spielbrett.spielerAmZug
																	.getXPosition()][Spielbrett.spielerAmZug
																	.getYPosition()].getDerRaum().setzeSpielerBild(Spielbrett.spielerAmZug);
									} else if(feldSpielbrett.getAusRaumRaus()) {	// Wenn aus Raum raus gegangen
										Spielbrett.spielerAmZug.setInRaum("");
										Spielbrett.verdachtButton.setEnabled(false);
										Spielbrett.anklageButton.setEnabled(false);
									}
									
									if (Spielbrett.spielerAmZug.getWueCounter() == 0) {
										Spielbrett.zeigeSpielerLabels();
										Spielbrett.brett.paintImmediately(0, 0, 1200, 780);
										Spielbrett.nextRoundButton
												.setEnabled(true);
										for (int i = 0; i < 24; i++) {

											for (int ii = 0; ii < 25; ii++) {
												Spielbrett.felderSpielbrett[i][ii]
														.getFeldButton()
														.setEnabled(false);
											}

										}
									}
								}
//								} else {
//									// popup falsches feld
//								}
								Spielbrett.brett.repaint();

							}
						});
			}
		}
	}
}
